package com.cleaningcloud.cld.service.mini;

import com.cleaningcloud.cld.domain.CldRegularSubmit;
import com.cleaningcloud.cld.domain.CldWorkplan;
import com.cleaningcloud.cld.domain.CldWorkplanSubmit;
import com.cleaningcloud.cld.domain.dto.CldRegularMeetingDto;
import com.cleaningcloud.cld.domain.dto.CldRegularPlanDto;
import com.cleaningcloud.cld.domain.dto.CldWorkplanDto;
import com.cleaningcloud.cld.domain.vo.CldRegularMeetingVo;
import com.cleaningcloud.cld.domain.vo.CldRegularPlanVo;
import com.cleaningcloud.cld.domain.vo.CldRegularSubmitVo;
import com.cleaningcloud.cld.domain.vo.CldWorkplanVo;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 项目管理接口
 */
public interface IMiniProjectService {

    /**
     * @Author Shaw
     * @Description 小程序(客户端)-查询工作计划详情
     * @date: 2025-06-10 16:38
     * @param: //TODO
     */
    CldWorkplanVo getCustomerWorkPlanInfo(Long workPlanId, String rowDate, Long postId,Long staffId);

    /**
     * 工作计划明细查询
     *
     * @param workPlanId
     * @return
     */
    CldWorkplanVo selectCldWorkplanByWorkplanId(Long workPlanId, Date rowDate, Long postId);

    /**
     * 工作计划提交
     *
     * @param cldWorkplanDto
     * @return
     */
    int submitWorkPlan(CldWorkplanDto cldWorkplanDto);

    /**
     * 查询工作计划列表
     *
     * @param cldWorkplanDto
     * @return
     */
    List<CldWorkplan> getWorkPlanList(CldWorkplanDto cldWorkplanDto);


    /**
     * 工作计划列表查看 (待审核 未通过 已通过)
     *
     * @param cldWorkplanDto
     * @return
     */
    List<Map<String,Object>> getWorkPlanListDate(CldWorkplanDto cldWorkplanDto);

    /**
     * @Author Shaw
     * @Description 小程序(客户端) - 工作计划审核
     * @date: 2025-10-30 10:14
     * @param: //TODO
     */
    int auditWorkPlan(CldWorkplanDto cldWorkplanDto);

    /**
     * @Author Shaw
     * @Description 小程序(客户端) - 工作(日)计划批量审核
     * @date: 2025-06-10 16:34
     * @param: //TODO
     */
    int batchAuditWorkPlan(CldWorkplanDto cldWorkplanDto);

    //---------------------------------------  例会相关 ---------------------------------------
    /**
     * @Author Shaw
     * @Description 查询当天和历史例会记录
     * @date: 2025-06-11 12:05
     * @param: //TODO
     */
    List<CldRegularMeetingVo> getRegularMeetingList(CldRegularMeetingDto cldRegularMeetingDto);

    /**
     * @Author Shaw
     * @Description 查询例会计划列表记录
     * @date: 2025-06-11 15:06
     * @param: //TODO
     */
    List<CldRegularPlanVo> getRegularPlanList(CldRegularPlanDto cldRegularPlanDto);

    /**
     * 例会计划列表查看
     * @param cldRegularPlanDto
     * @return
     */
    List<CldRegularPlanVo> regularPlanList(CldRegularPlanDto cldRegularPlanDto);

    /**
     * 查询例会计划员工提交状态
     * @param cldRegularPlanDto
     * @return
     */
    List<Map<String,Object>> getRegularPlanStaff(CldRegularPlanDto cldRegularPlanDto);

    /**
     * 查询例会计划明细
     * @return
     */
    CldRegularPlanVo getRegularPlanById(CldRegularPlanDto cldRegularPlanDto );

    /**
     * 查询例会计划提交明细
     * @param cldRegularSubmit
     * @return
     */
    List<CldRegularPlanVo> getRegularPlanStaffSubmit(CldRegularSubmit cldRegularSubmit);
}
